<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
// 实例方法
// 通过类的实例对象调用方法
/*
class People{
    say(){
        console.log("Hello");
    }
    }

var p = new People();
p.say()
*/

// 实例属性
// 实例属性指的是类的实例对象可调用的属性
/*
class People{
    constructor(name,age){
        this.name = name;
        this.age = age;
}
say(){
    console.log(this.name,this.age);
}
}
var p = new People("iwen",20);
p.say()
console.log(p.name,p.age);
*/

// 静态方法
// 类相当于实例的原型，所有在类中定义的方法，都会被实例继承。
// 如果在一个方法前，加上static关键字，就表示该方法不会被实例继承，而是直接通过类来调用，这就称为“静态方法”
/*
class Person{
    static classMethod(){
    console.log("Hello");
}
}
Person.classMethod()//Hello
var p = new Person();
p.classMethod() //p.classMethod is not a function
*/

// 温馨提示
// 注意，如果静态方法包含this关键字，这个this指的是类，而不是实例。
/*
class People{
    static getSay(){
    this.say();
}
    static say(){
    console.log('hello');
}
say(){
    console.log('world');
}
}
People.getSay()//hello
*/

// 静态属性
// 静态属性指的是Class本身的属性，即Class.propName
class People{}
People.status="等待"
console.log(People.status);

    </script>

</body>
</html>